Modelica definition
model SingleComponent
Modelica.Blocks.Interfaces.BooleanOutPort BFunctional;
Extensions.TDelayExp DelayLifeExp(mean=9, seed=2354);
Place11 Nonfunctional;
Extensions.TDelayExp DelayRepairExp(mean=1, seed=984446);
Place11 Functional(initialState=true);
equation
connect(DelayLifeExp.outTransition, Nonfunctional.inTransition);
connect(Nonfunctional.outTransition, DelayRepairExp.inTransition);
connect(Functional.outTransition, DelayLifeExp.inTransition);
connect(Functional.inTransition, DelayRepairExp.outTransition);
BFunctional.signal[1] = Functional.state;
end SingleComponent;
Modelica definition
model SingleComponentAlt
Modelica.Blocks.Interfaces.BooleanOutPort BFunctional;
Extensions.TDelayExp DelayLifeExp(mean=9, seed=87466351);
Place11 Nonfunctional;
Extensions.TDelayExp DelayRepairExp(mean=1, seed=31876165);
Place11 Functional(initialState=true);
equation
connect(DelayLifeExp.outTransition, Nonfunctional.inTransition);
connect(Nonfunctional.outTransition, DelayRepairExp.inTransition);
connect(Functional.outTransition, DelayLifeExp.inTransition);
connect(Functional.inTransition, DelayRepairExp.outTransition);
BFunctional.signal[1] = Functional.state;
end SingleComponentAlt;
Modelica definition
model SingleComponentAlt1
Modelica.Blocks.Interfaces.BooleanOutPort BFunctional;
Extensions.TDelayExp DelayLifeExp(mean=9, seed=76481354);
Place11 Nonfunctional;
Extensions.TDelayExp DelayRepairExp(mean=1, seed=188463);
Place11 Functional(initialState=true);
equation
connect(DelayLifeExp.outTransition, Nonfunctional.inTransition);
connect(Nonfunctional.outTransition, DelayRepairExp.inTransition);
connect(Functional.outTransition, DelayLifeExp.inTransition);
connect(Functional.inTransition, DelayRepairExp.outTransition);
BFunctional.signal[1] = Functional.state;
end SingleComponentAlt1;
Modelica definition
model OR3
Modelica.Blocks.Interfaces.BooleanInPort inPort1(final n=1);
Modelica.Blocks.Interfaces.BooleanInPort inPort2(final n=1);
Modelica.Blocks.Interfaces.BooleanOutPort outPort(final n=1);
Modelica.Blocks.Interfaces.BooleanInPort inPort3(final n=1);
equation
outPort.signal[1] = inPort1.signal[1] or inPort2.signal[1] or
inPort3.signal[1];
end OR3;
Parameters
| Name | Default | Description |
| meanLife | 10 | Mean lifetime |
| meanRepair | 1 | Mean repairtime |
| seedLife | 2545 | |
| seedRepair | 9832747 | |
Modelica definition
model SingleComponentNonFunctional
parameter Real meanLife=10 "Mean lifetime";
parameter Real meanRepair=1 "Mean repairtime";
parameter Integer seedLife=2545;
parameter Integer seedRepair=9832747;
Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional;
Extensions.TDelayExp DelayLifeExp(mean=meanLife, seed=seedLife);
Place11 Nonfunctional;
Extensions.TDelayExp DelayRepairExp(mean=meanRepair, seed=seedRepair);
Place11 Functional(initialState=true);
equation
connect(DelayLifeExp.outTransition, Nonfunctional.inTransition);
connect(Nonfunctional.outTransition, DelayRepairExp.inTransition);
connect(Functional.outTransition, DelayLifeExp.inTransition);
connect(Functional.inTransition, DelayRepairExp.outTransition);
BNonFunctional.signal[1] = not Functional.state;
end SingleComponentNonFunctional;
Parameters
| Name | Default | Description |
| meanLife | 60*24*10 | Mean lifetime, exponential distribution |
| seedLife | 2545 | |
| meanRepair | 60*3 | Mean repairtime, normal distribution |
| standardDeviationRepair | 60*1 | Standard deviation of repair-time, normal distribution |
| seed1Repair | 1469 | |
| seed2Repair | 8769821 | |
Modelica definition
model Nonfunctional
parameter Real meanLife=60*24*10
"Mean lifetime, exponential distribution";
parameter Integer seedLife=2545;
parameter Real meanRepair=60*3
"Mean repairtime, normal distribution";
parameter Real standardDeviationRepair=60*1
"Standard deviation of repair-time, normal distribution";
parameter Integer seed1Repair=1469;
parameter Integer seed2Repair=8769821;
Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional;
Extensions.TDelayExp DelayLifeExp(mean=meanLife, seed=seedLife);
Place11 Nonfunctional;
Place11 Functional(initialState=true);
Extensions.TDelayNormal DelayRepairNormal(
mean=meanRepair,
standardDev=standardDeviationRepair,
seed1=seed1Repair,
seed2=seed2Repair);
equation
connect(DelayLifeExp.outTransition, Nonfunctional.inTransition);
connect(Functional.outTransition, DelayLifeExp.inTransition);
connect(DelayRepairNormal.outTransition, Functional.inTransition);
connect(Nonfunctional.outTransition, DelayRepairNormal.inTransition);
BNonFunctional.signal[1] = not Functional.state;
end Nonfunctional;
Parameters
| Name | Default | Description |
| meanLife | 60*24*10 | Mean lifetime, exponential distribution |
| meanRepair | 60*3 | Mean repairtime, normal distribution |
| standardDeviationRepair | 60*1 | Standard deviation of repair-time, normal distribution |
Modelica definition
model NonfunctionalBIRNG
parameter Real meanLife=60*24*10
"Mean lifetime, exponential distribution";
parameter Real meanRepair=60*3
"Mean repairtime, normal distribution";
parameter Real standardDeviationRepair=60*1
"Standard deviation of repair-time, normal distribution";
Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional;
Place11 Nonfunctional;
Place11 Functional(initialState=true);
Extensions.TDelayExpBIRNG TDelayExpBIRNG1(mean=meanLife);
Extensions.TDelayNormalBIRNG TDelayNormalBIRNG1(center=meanRepair,
standardDev=standardDeviationRepair);
equation
connect(TDelayNormalBIRNG1.outTransition, Functional.inTransition);
connect(Nonfunctional.outTransition, TDelayNormalBIRNG1.inTransition);
connect(Functional.outTransition, TDelayExpBIRNG1.inTransition);
connect(TDelayExpBIRNG1.outTransition, Nonfunctional.inTransition);
BNonFunctional.signal[1] = not Functional.state;
end NonfunctionalBIRNG;
Parameters
| Name | Default | Description |
| meanLife | 60*24*10 | Mean lifetime, exponential distribution |
| meanRepair | 60*3 | Mean repairtime, normal distribution |
| standardDeviationRepair | 60*1 | Standard deviation of repair-time, normal distribution |
Modelica definition
model FunctionalBIRNG
parameter Real meanLife=60*24*10
"Mean lifetime, exponential distribution";
parameter Real meanRepair=60*3
"Mean repairtime, normal distribution";
parameter Real standardDeviationRepair=60*1
"Standard deviation of repair-time, normal distribution";
Modelica.Blocks.Interfaces.BooleanOutPort BNonFunctional;
Place11 Nonfunctional;
Place11 Functional(initialState=true);
Extensions.TDelayExpBIRNG TDelayExpBIRNG1(mean=meanLife);
Extensions.TDelayNormalBIRNG TDelayNormalBIRNG1(center=meanRepair,
standardDev=standardDeviationRepair);
equation
connect(TDelayNormalBIRNG1.outTransition, Functional.inTransition);
connect(Nonfunctional.outTransition, TDelayNormalBIRNG1.inTransition);
connect(Functional.outTransition, TDelayExpBIRNG1.inTransition);
connect(TDelayExpBIRNG1.outTransition, Nonfunctional.inTransition);
BNonFunctional.signal[1] = Functional.state;
end FunctionalBIRNG;
Modelica definition
model EvalBlock
Real Q;
Real WeightedSum;
Real Qavg;
Real told;
Real tnew;
Real tdelta;
Modelica.Blocks.Interfaces.InPort InTokens;
Modelica.Blocks.Interfaces.BooleanInPort InChange;
algorithm
when InChange.signal[1] then
Q := InTokens.signal[1];
told := tnew;
tnew := time;
tdelta := tnew - told;
WeightedSum := WeightedSum + Q*tdelta;
Qavg := WeightedSum/(time + 1e-3);
end when;
end EvalBlock;
HTML-documentation generated by Dymola Tue Apr 30 22:44:02 2002
.